import axios from 'axios'
// 导入处理大数字的包
import jsonBig from 'json-bigint'
import store from '@/store/index.js'

// 封装axios

// create 可以封装多套接口  暴露多套接口实例
const request = axios.create({
  // baseURL: 'http://ttapi.research.itcast.cn/' // 基础路径
  baseURL: 'http://toutiao-app.itheima.net',

  // transformResponse  自定义原始的响应数据(字符串)
  transformResponse: [
    function (data) {
      try {
        return jsonBig.parse(data)
      } catch (error) {
        // 转换失败则包装为统一格式返回
        return {
          data
        }
      }
    }
  ]
})

// 为请求头添加响应拦截器
request.interceptors.request.use((config) => {
  // 获取本地存储token
  const { user } = store.state
  if (user && user.token) {
    config.headers.Authorization = `Bearer ${user.token}`
  }
  return config
})
// 响应完成
request.interceptors.response.use((config) => {
  return config
})

export default request
